/*
 * Menu dell'inventario
 */

import java.io.*;

/**
 *
 * @author mattia
 */
public class Menu{
    //Azioni input
    InputStreamReader   input       = new InputStreamReader(System.in);
    BufferedReader      tastiera    = new BufferedReader(input);
    
    public Menu(){
        menu();
    }
    
    private void menu(){
        
        int action = 0;
        
        System.out.println("\n========================================");
        System.out.println("1) Inserisci un elemento");
        System.out.println("2) Visualizza l'inventario");
        System.out.println("3) Record nel file \"inventario.dat\"");
        System.out.println("4) Modifica un record");
        System.out.println("5) Ricerca un record");
        System.out.println("0) ESCI");
        System.out.println("========================================");
        
        System.out.println("Azione: ");
        try {
            action = Integer.valueOf(tastiera.readLine()).intValue();
            if(action < 0 || action > 6){
                System.out.println("Azione non valida. Riprova...");
                menu();
            }
        } catch (Exception e) {
            System.out.println("Azione non valida! Riprova...");
            menu();
        }
        
        actions(action);
    }
    
    private void actions(int action){
        Files f = new Files();
        
        switch(action){
            case 1://Inserimento
                //f.writeFile();
                f.insert();
                menu();
                break;
            case 2://Visualizza l'intero file
                //f.read();
                f.show();
                menu();
                break;
            case 3:
                System.out.println("I record nel file sono: " + f.count());
                menu();
                break;
            case 4:
                //f.modify(false);
                menu();
                break;
            case 5:
                searchMenu();
                break;
            default://Chiude il programma
                break;
        }
    }
    
    private void searchMenu(){
        int action = 0;
        
        System.out.println("\n========================================");
        System.out.println("1) Ricerca in base al nome del prodotto");
        System.out.println("2) Ricerca in base alla categoria");
        System.out.println("3) Ricerca in base al codice");
        System.out.println("0) ESCI");
        System.out.println("========================================");
        
        System.out.println("Azione: ");
        try {
            action = Integer.valueOf(tastiera.readLine()).intValue();
            if(action < 0 || action > 3){
                System.out.println("Azione non valida. Riprova...");
                menu();
            }
        } catch (Exception e) {
            System.out.println("Azione non valida! Riprova...");
            menu();
        }
        
        actionsSearch(action);
    }
    
    private void actionsSearch(int action){
        Files f = new Files();
        
        switch(action){
            case 1://Cerca in base al nome
                f.get(1);
                searchMenu();
                break;
            case 2://Cerca in base alla categoria
                f.get(2);
                searchMenu();
                break;
            case 3:
                f.get(3);
                searchMenu();
                break;
            default://Torna al menu
                menu();
                break;
        }
    }
}
